package demo7;

import jakarta.annotation.PreDestroy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class Person {
    private String name;

    public Person() {
        System.out.println("1:Person的构造方法调用了");
    }

    public String getName() {
        return name;
    }
    @Value("张三")
    public void setName(String name) {
        System.out.println("2:Person的setName方法调用了,初始化name属性");
        this.name = name;
    }
    /*
        当我们定义一个方法并使用注解@PostConstruct
        此时,如果Spring容器将一个对象完整初始化完毕后,就会调用该方法
        完整初始化完毕:对象实例化了,属性也初始化了.

        当前方法的名字可以任意,但是必须使用@PostConstruct注解才能有效果
     */
    @PreDestroy
    public void postConstruct(){
        System.out.println("3:Person的postConstruct方法调用了");
    }
}